package com.augurit.wf.bi.service;



import java.util.List;
import java.util.Map;

import com.augurit.common.base.service.ICrudService;
import com.augurit.wf.bi.web.form.WfActElemPrivDefForm;

public interface IWfActElemPrivDefService extends ICrudService<WfActElemPrivDefForm, Long> {
	
	/**
	 * 导入待办、在办视图权限配置
	 * @param templateId
	 * @param curVersion
	 * @param preVersion
	 * @param activityNames
	 */
	public void importDbZbViewPrivFromPreVersion(Long templateId, Integer curVersion, Integer preVersion, List<String> activityNames);
	
	/**
	 * 导入已办、办结视图权限配置
	 * @param templateId
	 * @param curVersion
	 * @param preVersion
	 */
	public void importYbBjViewPrivFromPreVersion(Long templateId, Integer curVersion, Integer preVersion);
	/**
	 * 获取业务流程模板中某一个流程节点的元素权限信息
	 * @param templateId
	 * @param version
	 * @param viewName
	 * @param activityName
	 * @return
	 */
	public List<WfActElemPrivDefForm> getElemPrivDef(Long templateId, Integer version, String viewName, String activityName);
	
	/**
	 * 获取指定的业务流程下指定流程节点下的指定页面元素的权限
	 * @param templateId
	 * @param version
	 * @param viewName
	 * @param activityName
	 * @param elementId
	 * @return 如果没有指定元素在指定的业务流程下指定流程节点下的权限信息，返回null
	 */
	public WfActElemPrivDefForm getElemPriv(Long templateId, Integer version, String viewName, String activityName, Long elementId);
	
	/**
	 * 获取指定的业务流程下指定流程节点下的指定页面元素的权限
	 * @param templateCode
	 * @param version
	 * @param viewName
	 * @param activityName
	 * @param elementCode
	 * @return 如果没有指定元素在指定的业务流程下指定流程节点下的权限信息，返回null
	 */
	public WfActElemPrivDefForm getElemPriv(String templateCode, Integer version, String viewName, String activityName, String elementCode);
	
	/**
	 * 更新流程结点的权限信息
	 * @param list
	 */
	public boolean updateActElemPriv(List<WfActElemPrivDefForm> list);
	
	
	public List<WfActElemPrivDefForm> getAll();
	
	public void deleteByElemPrivInTemplate(Long templateId, Long elementId);
}